
// 在 Promise链 中向后传递数据

let a = 20 , b = 30 , c = 4 , d = 5 , e = 6;

// 依次执行 加法、减法、乘法、除法运算
console.log( ( ( a + b ) - c ) * d / e );

// 通过构造方法创建Primise实例，并通过 executor 调用 resolve 函数完成兑现
// let p = new Promise( (resolve,reject) => resolve() );

// 调用 Promise 的静态方法得到一个 已兑现的 Promise实例
let p = Promise.resolve();

p.then( () => { 
    // 在 then 的 参数对应的函数中完成【加法】运算并返回结果
    let result = a + b ;
    // 当 then 执行后会返回一个新的 Promise实例 ，其中包裹到了 result
    return result ;
}).then( prev => {
    console.log( prev );
    // 在 then 的 参数对应的函数中完成【减法】运算并返回结果
    return prev - c ;
}).then( prev => {
    console.log( prev );
    // 在 then 的参数对应的函数中完成【乘法】运算并返回结果
    return prev * d ;
}).then( prev => {
    console.log( prev );
    // 在 then 的参数对应的函数中完成【除法】运算并返回结果
    return prev / e ;
}).then( prev => {
    console.log( prev );
}).catch( error => {
    console.log( error );
}).finally( () => console.log('ending') );
